The present invention relates generally to automatic termination of buses to enhance data transmission quality, and more particularly to an auto-termination method and apparatus for use with either active high or active low terminators.
Today's standard computer architectures call for a number of separate components, such as a central processing unit ("CPU"), memory, ports and peripheral devices to be coupled together by electrical buses to provide a pathway for data between the various components. Electrical buses are simply groups of conductors (or lines) designed to operate as a group.
Components transmit data over buses by changing voltages on the various lines of the bus. In binary digital computers, each line in a bus is capable of assuming one of two possible states at a given moment. These states are represented by presence or absence of a voltage, or potential difference relative to ground, on each of the lines.
In the real world, buses are real electrical conductors and therefore contain impedance just as do all real conductors. This impedance traps electrical charge within the line, presenting, in a sense, a momentum against which the change must take place. When the line is directed to change from a binary one to a binary zero (meaning a grounding of the line), it resists the change, typically causing a voltage oscillation at the point of transition (termed "ringing"). This ringing may be of sufficient magnitude as to cause components reading data from the bus to misread the oscillation as the presence of a voltage (a binary one) instead of the intended binary zero, thereby corrupting the flow of data. Therefore, in such conductors, it is standard practice to provide a means by which to dissipate the electrical charge quickly and damp the ringing, so as to restore data transmission fidelity. Damping is achieved through use of a terminator, which can include a plurality of resistive elements or active switches.
Some buses require terminators at each end of the bus to provide effective damping. One such bus standard is the small computer systems interface ("SCSI") bus. The SCSI bus is designed to operate in conjunction with microcomputers (also termed personal computers or "PCs") to provide an interface to SCSI standard peripheral devices. SCSI buses require a device interface card or controller card to manage communication of data between the PC and the SCSI devices and between the SCSI devices themselves. In PCs, this device interface card is typically placed in a slot within the main chassis of the PC. The device interface card contains a controller that manages the SCSI bus and at least one SCSI port allowing SCSI devices to couple to the card. SCSI devices are daisy chained together with a common cable. All SCSI devices operate on common signals, and both ends of the cable are terminated with hardware terminators. The terminators, that can be connected to either SCSI devices or to the SCSI cable itself are, as stated above, required to make data transfers on the SCSI bus reliable.
Devices connected to SCSI chains must have the correct number of terminators for proper operation and to prevent damage to the SCSI interface card. In systems that utilize SCSI devices, there can be no more than two terminators in a chain of SCSI devices, one at each end of the physical chain. This means that, if more than two SCSI devices are connected in a SCSI daisy chain, the middle device(s) on the cable must not have terminators coupled to the SCSI bus.
Some device interface cards provide auto-termination circuitry that determines whether the device interface card is at an end of the SCSI bus and that activates terminators when so determined. Two types of terminators, however, exist in the industry. The first type of terminator is enabled, thereby terminating bus lines that are coupled to the terminator, when a pin of the terminator is forced to a low voltage state. The present document refers to this first type of terminator as an "active low terminator" due to the terminator being enabled (activated) with a low voltage signal. The second type of terminator is enabled, thereby terminating bus lines that are coupled to the terminator, when a pin of the terminator is forced to a high voltage state. The present document refers to this second type of terminator as an "active high terminator" due to the terminator being enabled (activated) with a high voltage signal.
Since two types of terminators are prevalent in the industry, some manufacturers of device interface cards use one type of terminator, some use the other type of terminator, and some use both types of terminators. The problem is that the type of terminator used effects the logic for generating the enable/disable voltages and in known device interface cards this logic was either implemented in the controller of the device interface card or was implemented using other hardware on the device interface card. As a result, manufactures of the controllers utilized in the device interface cards had to implement two types of controllers (one for active low terminators and one for active high terminators) in order to compete for the whole device interface card market. It should be apparent that designing, manufacturing, testing, etc. is more expensive for two controllers rather than for only one controller that can be utilized with both types of terminators.
What is needed therefore, is a method and apparatus that enables a single controller to be used in device interface card designs that utilize either active high or active low terminators.